package com.taa.dao;

import com.taa.dao.po.DishInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * @author: taa
 * @Desc: 菜品信息Dao
 * @create: 2025-06-19 11:14
 **/
@Mapper
public interface IDishInfoDao {

    /**
     * 根据商家ID查询其所有菜品列表
     * @param restaurantId 商家ID
     * @return 菜品列表
     */
    List<DishInfo> findByRestaurantId(Long restaurantId);

    /**
     * 根据菜品ID查询菜品信息
     * @param id 菜品ID
     * @return 菜品信息对象
     */
    DishInfo findById(Long id);

    /**
     * 批量查询菜品信息
     * @param ids 菜品ID列表
     * @return 菜品信息列表
     */
    List<DishInfo> findByIds(@Param("ids") List<Long> ids);

    /**
     * 扣减库存
     * @param dishId 菜品ID
     * @param quantity 扣减数量
     * @return 影响的行数，如果返回0说明库存不足或商品不存在
     */
    int decreaseStock(@Param("dishId") Long dishId, @Param("quantity") Integer quantity);
}
